<?php

require_once 'BancoDeDados.php';

class LogOperacao {

    private $cod_log_operacao;
    private $tipo_operacao;
    private $data_hora;
    private $cod_registro;
    private $espaco_cultural;
    private $usuario;
    private $recurso;

    public function &getCod_log_operacao() {
        return $this->cod_log_operacao;
    }

    public function setCod_log_operacao(&$cod_log_operacao) {
        $this->cod_log_operacao = &$cod_log_operacao;
    }

    public function &getTipo_operacao() {
        return $this->tipo_operacao;
    }

    public function setTipo_operacao(&$tipo_operacao) {
        $this->tipo_operacao = &$tipo_operacao;
    }

    public function &getData_hora() {
        return $this->data_hora;
    }

    public function setData_hora(&$data_hora) {
        $this->data_hora = &$data_hora;
    }

    public function &getCod_registro() {
        return $this->cod_registro;
    }

    public function setCod_registro(&$cod_registro) {
        $this->cod_registro = &$cod_registro;
    }

    public function &getEspaco_cultural() {
        return $this->espaco_cultural;
    }

    public function setEspaco_cultural(&$espaco_cultural) {
        $this->espaco_cultural = &$espaco_cultural;
    }

    public function &getUsuario() {
        return $this->usuario;
    }

    public function setUsuario(&$usuario) {
        $this->usuario = &$usuario;
    }

    public function &getRecurso() {
        return $this->recurso;
    }

    public function setRecurso(&$recurso) {
        $this->recurso = &$recurso;
    }

    public function gravarLog() {
        $banco = BancoDeDados::getInstance();
        $link = $banco->getLink();
        $stmt = $link->prepare('insert into logoperacao (tipo_operacao, data_hora, cod_registro, espaco_cultural, usuario, recurso) values(?,?,?,?,?,?)');
        $result = $link->execute($stmt, array($this->tipo_operacao, $this->data_hora, $this->cod_registro, $this->espaco_cultural, $this->usuario, $this->recurso));
        if (DB::isError($result)) {
            $link->rollBack();
            throw new Exception($result->getMessage());
        }
        $link->commit();
    }

    public static function &listar(&$query, array &$dados) {
        $banco = BancoDeDados::getInstance();
        $result = $banco->getLink()->query($query, $dados);
        if (DB::isError($result)) {
            throw new Exception($result->getMessage());
        }
        $resultado = array();
        while ($result->fetchInto($row)) {
            $log = new LogOperacao();
            $log->setCod_log_operacao($row['cod_log_operacao']);
            $log->setCod_registro($row['cod_registro']);
            $log->setData_hora($row['data_hora']);
            $log->setEspaco_cultural($row['espaco_cultural']);
            $log->setRecurso($row['recurso']);
            $log->setTipo_operacao($row['tipo_operacao']);
            $log->setUsuario($row['usuario']);
            $resultado[] = &$log;
            unset($log);
        }
        return $resultado;
    }

}
?>